C POSIX 限制

1 数值限制

LONG_BIT
SSIZE_MAX 
WORD_BIT

2 <limits.h>中POSIX.1 最小值

这些最小值,表示当前市面的所有符合POSIX标准的系统。最少都是这么大。
所以不要看这些参数都带有 MAX 字样。

但是这些最小值在实际应用中太小了。例如:

  1. _POSXI_PATH_MAX 限制为255 ,路径名可能会超过这一限制。
    在生产中尽量不要用 _POSIX_OPEN_MAX\_POSIX_PATH_MAX 这两个常量。
名称 说明:最小可接受值
_POSIX_ARG_MAX exec 函数的参数长度 4096
_POSIX_CHILD_MAX 每个实际用户ID的自进程数 25
_POSIX_DELAYTIMER_MAX 定时器最大超限运行次数 32
_POSIX_HOST_NAME_MAX gethostname 函数返回的主机名长度 255
_POSIX_LINK_MAX 至一个文件的链接数 8
_POSIX_LOGIN_NAME_MAX 登录名的长度 9
_POSIX_MAX_CANNON 终端规范输入队列的字节数 255
_POSIX_MAX_INPUT 终端输入队列的可用空间 255
_POSIX_NAME_MAX 文件名中的字节数,不包括终止null字节 14
_POSIX_NGROUPS_MAX 每个进程同事添加的组ID数 8
_POSIX_OPEN_MAX 每个进程的打开文件数 20
_POSIX_PATH_MAX 路径名中的字节数,包括终止null字节 256
_POSIX_PIPE_BUF 能原子地写到一个管道中的字节数 512
_POSIX_RE_DUP_MAX 当使用间隔表示法{m,n}时,regexec和regcomp 函数允许的基本正则表达式重复的发生次数 255
_POSIX_RTSIG_MAX 为应用预留的实时信号编号个数 8
_POSIX_SEM_NSEMS_MAX 一个进程可以同时使用的信号量个数 256
_POSIX_SEM_VALUE_MAX 信号量可持有的值 32767
_POSIX_SIGQUEUE_MAX 一个进程可发送和挂起的排队信号的个数 32
_POSIX_SSIZE_MAX 能存在ssize_t对象中的值 32767
_POSIX_STREAM_MAX 一个进程能同时打开的标准I/O流数 8
_POSXI_SYMLINK_MAX 符号链接中的字节数 255
_POSIX_SYMLOOP_MAX 在解析路径名时,可遍历的符号链接数 8
_POSIX_TIMER_MAX 每个进程的定时器数目 32
_POSIX_TTY_NAME_MAX 终端设备名长度,包括终止null字节 9
_POSIX_TZNAME_MAX 时区名字节数 6

3 最大值

_POSIX_CLOCKDERS_MIN

4 运行时可以增加的值

CHARCLASS_NAME_MAX 
COLL_WEIGHTS_MAX 
LINE_MAX 
NGROUPS_MAX 
RE_DUP_MAX 

5 <limits.h> 中POSIX.1 运行时不变值

名称 说明 最小可接受值
ARG_MAX exec 函数族的参数最大长度 _POSIX_ARG_MAX
ATEXIT_MAX 可用atexit函数登记最大函数个数 32
CHILD_MAX 每个实际用户ID的子进程最大个数 _POSIX_CHILD_MAX
DELAYTIMER_MAX 定时器最大超限运行次数 _POSIX_DELAYTIMER_MAX
HOST_NAME_MAX gethostname 返回的主机名长度 _POSIX_HOST_NAME_MAX
LOGIN_NAME_MAX 登录名最大长度 _POSIX_LOGIN_NAME_MAX
OPEN_MAX 赋予新建文件描述符的最大值 + 1 _POSIX_OPEN_MAX
PAGESIZE 系统内存页大小(以字节为单位) 1
RTSIG_MAX 为应用程序预留的实时信号的最大个数 _POSIX_RTSIG_MAX
SEM_NSEMS_MAX 一个进程可以使用的信号量最大个数 _POSIX_SEM_NSEMS_MAX
SEM_VALUE_MAX 信号量的最大值 _POSIX_SEM_VALUE_MAX
SIGQUEUE_MAX 一个进程可排队信号最大个数 _POSIX_SIGQUEUE_MAX
STREAM_MAX 一个进程一次可打开的标准I/O流的最大个数 _POSIX_STREAM_MAX
SYNLOOP_MAX 路径解析过程中可访问的符号链接数 _POSIX_SYMLOOP_MAX
TIMER_MAX 一个进程的定时器最大个数 _POSIX_TIMER_MAX
TTY_NAME_MAX 终端设备名长度,其中包括终止的null字节 _POSIX_TTY_NAME_MAX
TZNAME_MAX 时区名的字节数 _POSIX_TZNAME_MAX

6 其他不变值

NL_ARGMAX
NL_MSGMAX
NL_SETMAX
NL_TEXTMAX

7 路径名可变值

FILESIZEBITS
LINK_MAX 
MAX_CANON 
MAX_INPUT 
NAME_MAX 
PATH_MAX 
PIPE_BUF 
SYMLINK_MAX 
Connected Pages
On this page
  • 1 数值限制
  • 2 中POSIX.1 最小值
  • 3 最大值
  • 4 运行时可以增加的值
  • 5 中POSIX.1 运行时不变值
  • 6 其他不变值
  • 7 路径名可变值